package com.toycloud.business.service;


import com.toycloud.business.domain.bo.DemandPanelBo;
import com.toycloud.business.domain.bo.DemandRecordBo;
import com.toycloud.business.domain.bo.DemandRecordPageBo;
import com.toycloud.business.domain.vo.DemandRecordVo;

import com.toycloud.business.domain.vo.PanelDto;
import com.toycloud.business.dto.results.UserParam;
import com.toycloud.common.core.page.TableDataInfo;


import javax.servlet.http.HttpServletRequest;
import java.util.Collection;
import java.util.List;

/**
 * demandService接口
 *
 * @author binlu6
 * @date 2024-10-31
 */
public interface IDemandRecordService {

    /**
     * 查询demand
     */
    DemandRecordVo queryById(Integer id);

    /**
     * 变更demand
     */
    Integer changeById(Integer id);

    /**
     * 查询demand列表
     */
    TableDataInfo<DemandRecordVo> queryPageList(DemandRecordPageBo bo);

    /**
     * 看板查询
     */
    List<PanelDto> queryPanel(String categoryType);

    List<PanelDto> queryPanelBybo(DemandPanelBo bo);

    /**
     * 查询demand列表
     */
    List<DemandRecordVo> queryList(DemandRecordBo bo);

    /**
     * 新增demand
     */
    Boolean insertByBo(DemandRecordBo bo);

    /**
     * 修改demand
     */
    Boolean updateByBo(DemandRecordBo bo);

    /**
     * 校验并批量删除demand信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * id删除单条记录（逻辑删除）
     */
    Boolean deleteById(Long id);

    UserParam username(HttpServletRequest request);

    /**
     * 修改需求记录
     */
    Boolean updateVersion(String ids);
}
